package com.ruoyi.system.service;

import com.ruoyi.system.domain.SysPlace;
import com.ruoyi.system.domain.vo.PlaceCascaderVo;
import com.ruoyi.system.domain.vo.SelectByPlaceLevelVo;

import java.util.List;

/**
 * 地区管理Service接口
 *
 * @author linyang
 * @date 2024-01-17
 */
public interface ISysPlaceService {
    /**
     * 查询地区管理
     *
     * @param id 地区管理主键
     * @return 地区管理
     */
    public SysPlace selectSysPlaceById(Long id);

    /**
     * 查询地区管理列表
     *
     * @param sysPlace 地区管理
     * @return 地区管理集合
     */
    public List<SysPlace> selectSysPlaceList(SysPlace sysPlace);


    /**
     * 根据关键字查询地区列表
     * @param keyword
     * @return
     */
    public List<SysPlace> selectSearchSysPlaceList(String keyword);


    /**
     * 筛选出FullName为空的地区列表
     * @return
     */
    public List<SysPlace> selectEmptyFullNameSysPlaceList();


    /**
     * 获取定时任务要抓取的地区列表
     * @return
     */
    public List<SysPlace> selectTaskSysPlaceList();


    /**
     * 新增地区管理
     *
     * @param sysPlace 地区管理
     * @return 结果
     */
    public int insertSysPlace(SysPlace sysPlace);

    /**
     * 修改地区管理
     *
     * @param sysPlace 地区管理
     * @return 结果
     */
    public int updateSysPlace(SysPlace sysPlace);

    /**
     * 批量删除地区管理
     *
     * @param ids 需要删除的地区管理主键集合
     * @return 结果
     */
    public int deleteSysPlaceByIds(Long[] ids);

    /**
     * 删除地区管理信息
     *
     * @param id 地区管理主键
     * @return 结果
     */
    public int deleteSysPlaceById(Long id);


    /**
     *
     * @param vo
     * @return
     */
    public List<PlaceCascaderVo> selectByPlaceLevel(SelectByPlaceLevelVo vo);
}